/*
 * ButtonScanner.h
 *
 * This class models the LED Display that displays the
 * all the data provided by the cyclometer device
 *
 * Author: Zachary Masiello
 * Author: Peter-John Rowe
 */

#ifndef BUTTONSCANNER_H_
#define BUTTONSCANNER_H_

#include "ButtonPort.h"
#include "AllButtonPressEvent.h"
#include "ModeButtonPressEvent.h"
#include "SSModeButtonPressEvent.h"
#include "SetButtonPressEvent.h"
#include "SSButtonPressEvent.h"
#include "Cyclometer.h"

class ButtonScanner
{
public:
	// Constructor
	ButtonScanner(ButtonPort * , Cyclometer *);
	// Destructor
	virtual ~ButtonScanner();
	// For the thread that controls the input from the buttons to
	// throw events (button presses)
	static void* run(ButtonScanner *);
private:
	// IOPort interface for the buttons
	ButtonPort *buttonPort;
	// Cyclometer controller/context
	Cyclometer *cyclometer;
};

#endif /* BUTTONSCANNER_H_ */
